//package com.lzx.adx.report.job;
//
//import cn.hutool.core.collection.CollectionUtil;
//import cn.hutool.core.util.URLUtil;
//import cn.hutool.http.HttpRequest;
//import cn.hutool.http.HttpUtil;
//import com.alibaba.fastjson.JSONObject;
//import com.lzs.adx.commmon.redis.RedisUtils;
//import com.lzs.adx.commmon.utils.Result;
//import com.lzx.adx.report.cache.AccountLocalCache;
//import com.lzx.adx.report.constant.RedisKeyConstant;
//import com.lzx.adx.report.dto.AccountDTO;
//import com.lzx.adx.report.dto.ReportDTO;
//import com.lzx.adx.report.enums.ElmCovertAqyEventTypeEnums;
//import com.lzx.adx.report.service.ReportService;
//import com.lzx.adx.report.util.UrlParamsReplacer;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.http.HttpStatus;
//import org.springframework.http.ResponseEntity;
//import org.springframework.scheduling.annotation.EnableScheduling;
//import org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.stereotype.Component;
//
//import java.nio.charset.StandardCharsets;
//import java.util.*;
//
///**
// * 爱奇艺-有柿  回传异步任务
// */
//@Component
//@EnableScheduling
//@Slf4j
//public class AqyYsJob {
//
//
//    @Autowired
//    private ReportService reportService;
//
//    @Autowired
//    private RedisUtils redisUtils;
//
//    /**
//     * 趣头条-西瓜视频
//     */
//    @Scheduled(cron = "0 */10 * ? * *")
//    public void reportEvent(){
//        log.info("进行爱奇艺-有柿-上报处理-begin");
//        Map<String, Object> stringObjectMap = redisUtils.hgetAll(RedisKeyConstant.XMLY_KSJS);
//        int size = stringObjectMap.size();
//        log.info("进行爱奇艺-有柿-本次需要处理的数量为{}",size);
//        if(CollectionUtil.isNotEmpty(stringObjectMap)){
//            //
//            for(Map.Entry<String,Object> ev:stringObjectMap.entrySet()){
//                try {
//                    Object value = ev.getValue();
//                    log.info("目前正在执行{}",value);
//                    long eventTime = System.currentTimeMillis();
//                    callBackUrl(String.valueOf(value),"0",String.valueOf(eventTime));
//                }catch (Exception e){
//                    log.error("爱奇艺-有柿-出现了异常{}",ev.getValue());
//                }
//
//            }
//        }
//        log.info("进行爱奇艺-有柿-上报处理-end");
//    }
//
//
//
//    public ResponseEntity callBackUrl(String requestId,String eventType,String event_time) throws Exception {
//        log.info("爱奇艺接收了 有柿 回调信息，请求流水号{},回调类型为{}，回调时间{}",requestId,eventType,event_time);
//
//
//        //1.把转换结果更新到数据库
//        Map<String,Object> params=new HashMap<>();
//        params.put("bizRequestId",requestId);
//        List<ReportDTO> list = reportService.list(params);
//        ReportDTO reportDTO;
//        if(CollectionUtil.isNotEmpty(list)){
//            reportDTO = list.get(0);
//            reportDTO.setResultType(eventType);
//            reportDTO.setResultTime(event_time);
//            reportDTO.setUpdateTime(new Date());
//            reportService.updateData(reportDTO);
//        }else{
//            log.error("当前流水号，系统当前不存在");
//            return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
//        }
//
//
//        //2.从缓存加载配置
//        AccountDTO accountDTO = AccountLocalCache.getInstance().get(reportDTO.getDspId());
//        String callback = reportDTO.getCallback();
//        String decodeUrl = URLUtil.decode(callback, StandardCharsets.UTF_8);
//        //4.拼装最好的完整链接
//        String finalResultUrl=decodeUrl+"&event_type="+eventType;
//
//        log.info("有柿给{}上报回传结果，完整的URl{}",finalResultUrl);
//        HttpRequest body = HttpUtil.createGet(finalResultUrl);
//        String result = body.execute().body();
//        log.info("账号为{} 爱奇艺接收了有柿的回传接口，响应的结果为{}",accountDTO.getId(),result);
//        JSONObject jsonObject=JSONObject.parseObject(result);
//
//        //响应状态码成功
//        if(jsonObject.getInteger("status").equals(200)){
//            return ResponseEntity.ok(new Result());
//        }else{
//            return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
//        }
//    }
//}
